Find N unique integers sum up to zero

Time: O(N); Space: O(1); easy

Given an integer n, return any array containing n unique integers such that they add up to 0.

Example 1:

Input: n = 5

Output: [-7,-1,1,3,4]

Explanation:

  • These arrays also are accepted [-5,-1,1,2,3] , [-3,-1,2,-2,4].

Example 2:

Input: n = 3

Output: [-1,0,1]

Example 3:

Input: n = 1

Output: [0]

Notes:

  • 1 <= n <= 1000

Hints:

  1. Return an array where the values are symmetric. (+x , -x).

  2. If n is odd, append value 0 in your returned array.

[20]:
class Solution1(object):
    def sumZero(self, n):
        """
        :type n: int
        :rtype: List[int]
        """
        return [i for i in range(-(n//2), n//2+1) if not (i == 0 and n%2 == 0)]
[21]:
s = Solution1()
n = 5
s.sumZero(n)
# print(s.sumZero(n))
assert s.sumZero(n) == [-7,-1,1,3,4] or [-5,-1,1,2,3] or [-3,-1,2,-2,4] or [-2, -1, 0, 1, 2]
n = 3
assert s.sumZero(n) == [-1, 0, 1]
n = 4
assert s.sumZero(n) == [-2, -1, 1, 2]